The emergence of production grade container orchestration platforms is making microservice-based applications increasingly popular. Microservice-based applications can help reduce development time while increasing application scaleability. When deployed in the cloud, microservices-based applications can leverage a cloud provider's specific APIs making development time even faster. However, while these platforms are helping developers and operation teams, they can become a constraint when it comes to multi-cloud or when applications are using heterogeneous technologies. Connecting workloads can be complex when running in a data center like AWS (Amazon Web Services), Azure (Microsoft's Web Services) or GCP (Google Cloud Provider). Moreover, workloads can have multiple form factors including bare metal, virtual machines, containers or serverless.
A practical example of such a limitation would be an application made of the following microservices: a container running in Kubernetes with AWS leveraging AWS DynamoDB PI; a virtual machine running in Azure using the Azure machine learning service; and a physical server with a fast GPU (Graphics Processing Unit) running in a private data center. Connecting workloads in these different examples can be complex.